/**
 * Universidad del Valle de Guatemala
 * CC2003 Algoritmos y Estructuras de Datos
 * Proyecto 1: Intérprete de LISP --> Lambda LISP
 * @version 2 Septiembre, 2009
 * Integrantes:
 *      @author Julio Chicas, José García, Ernesto Rodríguez, Karen Tojín
 **/
/**
 * Description: Class with thread for excecuting requests
 **/

import java.util.ArrayList;

/**
 *
 * @author josegarcia
 */
class ExcecThread extends Thread{
    private ArrayList<Request> tasks;
    private Object lockTasks;
    private Boolean listening;

    
    public ExcecThread(ArrayList<Request> tasks, Object lockTasks,Boolean listening) {
	super();
	this.tasks=tasks;
	this.lockTasks=lockTasks;
	this.listening=listening;
    }

   
    public void run(){
	Request task;
        
	while(true){
	    synchronized(tasks){
	    	while(tasks.size()==0){
		
		    try {
			tasks.wait();
		    } catch (InterruptedException e) {}
                   
		}

		task=tasks.remove(0);
	    }
	    task.execute(listening);
	}


    }

}
